// js中有三种类型属性
/**
 * @命名数据属性  拥有确定的值
 * @命名访问器属性 通过getter和setter进行读取和赋值的属性
 * @内部属性 (通常用一个双括号包围，不是它们的名字而是一种抽象操作)由js引擎内部使用的属性，不能通过js代码直接访问到。不过可以间接读取和设置，例如每个对象都有一个内部属性[[Prototype]], 可通过Object.getPrototypeOf()间接读取它的值。
 */

Object.defineProperty 为对象定义的属性分为 数据描述符、存取描述符
数据描述符特有: writable、value
存取描述符特有: 
let obj1 = {h: "world"}
Object.defineProperty(obj, "a", {
    get()
})